package com.codejoys.monitor.service;

import com.codejoys.monitor.domain.Device;
import com.codejoys.monitor.dto.DeviceDto;

import java.util.List;

public interface StatusService {
    /**
     * 模块开启
     */
    int start(DeviceDto deviceDto);

    /**
     * 模块关闭
     */
    int close(DeviceDto deviceDto);

    // 移除设备
    void remove(DeviceDto device);

    void startAll(List<DeviceDto> devices);

    void stopAll(List<DeviceDto> devices);

    int getStatus(DeviceDto deviceDto);

    // 发送告警，测试代码
    void sendAlert(DeviceDto device);

    void batchDetach(List<DeviceDto> devices);

    // 查找数据错误的设备，将设备关机
    // 数据错误包括连续一段时间内数据异常，或者超过阈值
    List<DeviceDto> findDevicesWithErrorData();

    // 查找通道对应的设备状态
    List<DeviceDto> getChannelStatus(String[] channels);

    // 重置设备成已扫码状态
    void restore(DeviceDto device);
    void restoreOnStart(DeviceDto device);
}
